/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedbeans;

import entities.Customer;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import session.CustomerManager;

/**
 *
 * @author Gael
 */
@Named(value = "customerMBean")
@SessionScoped
public class CustomerMBean implements Serializable {

    /**
     * Creates a new instance of CustomerMBean
     */
    @EJB  
  private CustomerManager customerManager;
     private Customer customer;
    private List<Customer> ListofCustomer;
  
    public CustomerMBean() {  
    }  
  
    /** 
     * Renvoie la liste des clients pour affichage dans une DataTable 
     * @return 
     */  
    public List<Customer>getCustomers() {  
        if(ListofCustomer== null){
            ListofCustomer = customerManager.getAllCustomers();
        }
        return ListofCustomer;  
    }  
  
    /** 
     * Renvoie les détails du client courant (celui dans l'attribut customer de 
     * cette classe), qu'on appelle une propriété (property) 
     * @return 
     */  
    public Customer getDetails() {  
        return customer;  
    }  
  
    /** 
     * Action handler - appelé lorsque l'utilisateur sélectionne une ligne dans 
     * la DataTable pour voir les détails 
     * @param customer 
     * @return 
     */  
    public String showDetails(Customer customer) {  
        this.customer = customer;  
        return "CustomerDetails";  
    }  
  
    /** 
     * Action handler - met à jour la base de données en fonction du client 
     * passé en paramètres 
     * @return 
     */  
    public String update() {  
        System.out.println("###UPDATE###");  
        customer = customerManager.update(customer);  
        return "CustomerList";  
    }  
  
    /** 
     * Action handler - renvoie vers la page qui affiche la liste des clients 
     * @return 
     */  
    public String list() {  
        System.out.println("###LIST###");  
        return "CustomerList";  
    }  
}
